package com.example.forum.services;

import com.example.forum.model.Article;
import com.example.forum.model.User;
import org.springframework.web.multipart.MultipartFile;

public interface IUserService {
    /**
     * 插入一个用户
     * @param user 用户
     */
    void createNormalUser(User user);

    /**
     * 根据用户名查询
     * @param username 用户名
     * @return 用户
     */
    User selectByUsername(String username);

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return 用户
     */
    User login(String username,String password);

    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return
     */
    User selectById(Long id);

    /**
     * 给指定id用户的文章数 +1
     * @param id 指定用户id
     */
    void addOneArticleCountById(Long id);

    /**
     * 给指定id用户的文章数 -1
     * @param id 用户id
     */
    void subOneArticleCountById(Long id);

    /**
     * 更改用户信息
     * @param user 新对象
     */
    void modifyInfo(User user);

    /**
     * 更新密码
     * @param id 用户id
     * @param oldPassword 老密码
     * @param newPassword 新密码
     */
    void modifyPassword(Long id,String oldPassword,String newPassword);

    /**
     * 更改用户头像
     * @param avatarUrl 新头像地址
     */
    void modifyAvatarUrl(Long id,MultipartFile avatarUrl);
}
